import java.util.Scanner;
import java.util.Random;

public class Test {
    Test test = new Test();
    //1. 根据年龄, 来打印出当前年龄的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上）
    public static void func(int n){
        if(n < 18){
            System.out.println("少年");
        }
        else if(n >= 19 && n<= 22){
            System.out.println("青年");
        }
        else if( n >= 29 && n< 55){
            System.out.println("中年");
        }
        else{
            System.out.println("老年");
        }
    }
    public static void main1(String[] args) {
        func(22);
    }


    // 判定一个数字是否是素数
    public static Boolean isPrime (int x) {
        for (int i = 2; i < x-1 ; i++) {
            if (x % i == 0) return false;
        }
        return true;
    }
    public static void main2(String[] args) {
        Boolean a = isPrime(7);
        System.out.println(a);
    }

    // 打印 1 - 100 之间所有的素数
    public static void findprime(){
        for (int i = 1; i <= 100; i++) {
            int j = 0;//存疑

            for ( j = 2; j < i; j++) {

                if(i % j == 0) {
                    break;
                }
            }


            if (i == j) {  //走到这里的要么是素数要么是非素数，if就是用来筛出素数的
                System.out.println(i);
            }


        }
    }
    public static void main3(String[] args) {
        findprime();
    }
//4. 输出 1000 - 2000 之间所有的闰年
    public static void findleapyear() {
        for (int i = 1000; i < 2001; i++) {
            if(i % 4 ==0 && i % 100 != 0 || i % 400 ==0){
                System.out.println(i);
            }
        }
    }
    public static void main4(String[] args) {
        findleapyear();
    }
 //5. 输出乘法口诀表
    public static void func2(){
        int k = 0;

        for (int i = 1 ; i < 10; i++) {
            for (int j = i; j < 10 ; j++) {
                //打印用拼接的方法，想要显示的东西用引号表示
                System.out.println(" " + i + "*" + j + "=" + (i * j)+"\t" );
            }

        }

    }
    public static void main5(String[] args) {
        func2();
    }

   public static void findcommonmax(int x , int y) {
        int k = 0;
        int tmp = 0;
        while(x % y != 0) {
            k = x % y;
            tmp = x;
            x = y;
            y = k;
        }
       System.out.println(y);
    }
    public static void main6(String[] args) {
        findcommonmax(56,32);
    }
  //7. 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值
    public static void main7(String[] args) {
        double i,n = 1;
        double sum = 0;
        for ( i = 1; i < 101 ; i++) {

        }
    }
    //8. 编写程序数一下 1到 100 的所有整数中出现多少个数字9
    public static void main8(String[] args) {
        int count = 0;
        for (int i = 1; i < 101 ; i++) {
            if (i % 10 == 9) {
                count ++;

            }
            if (i / 10  == 9) {
                count ++;
            }
        }
        System.out.println(count);
    }
//求出0～999之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数，其各位数字的立方和确好等于该数本
//身，如；153＝1＋5＋3?，则153是一个“水仙花数
    public static void main9(String[] args) {
        int a,b,c = 0;
        for (int i = 100; i < 1000; i++) {
            a = i % 10;
            b = (i / 10) % 10;
            c = (i / 10) / 10;
            if (i == a * a * a + b * b * b + c * c * c) {
                System.out.println(i);
            }
        }
    }
//编写代码模拟三次密码输入的场景。 最多能输入三次密码，密码正确，提示“登录成功”,密码错误， 可以重新输
//入，最多输入三次。三次均错，则提示退出程序

    public static void func3 () {
        int count = 3;
        Scanner scanner = new Scanner(System.in);
        while (count != 0) {
            System.out.println("请输入密码:");
            String password = scanner.nextLine();
            if("abcd".equals(password)) {
                System.out.println("登录成功");
                break;
            }else {
                System.out.println("密码错误");
                count--;
            }
        }
    }
    public static void main10(String[] args) {
        func3();
    }
    //11. 写一个函数返回参数二进制中 1 的个数 比如： 15    00001111   4个1
    //思路很简单，就是让他移位，十进制移位的方法是除十，二进制移位的方法是除二。


    public static void func4 (int num) {
        int count = 0;
        while ( num > 0) {
            if(num % 2 == 1) {//看剥离出来的最后一位是否等于一
                count ++;
            }
            num /= 2;
        }
        System.out.println(count);
    }
    public static void main11(String[] args) {
        Scanner scan = new Scanner(System.in);
        int i = scan.nextInt();
        func4(i);
    }
    //获取一个数二进制序列中所有的偶数位和奇数位， 分别输出二进制序列
    public static void main12(String[] args) {

    }
    //13. 输出一个整数的每一位
    public static void main13(String[] args) {
        Scanner scan = new Scanner(System.in);
        int k = scan.nextInt();

    }
    //完成猜数字游戏

    public static void main(String[] args) {
        Random r = new Random();
        int randomnum = r.nextInt(100);
        Scanner scan = new Scanner(System.in);
        System.out.println("欢迎参加猜数字游戏");
        System.out.println("请输入您的数字：");
        while(true) {
            int x = scan.nextInt();
            if(x > randomnum) {
                System.out.println("猜大了，请重猜！");

            }
            else if (x < randomnum) {
                System.out.println("猜小了，请重猜！");
            }
            else {
                System.out.println("恭喜你猜对了！");
                break;
            }
        }
        System.out.println("游戏结束！");
        System.out.println(randomnum + "是正确数字");
    }

}
